Examining Exchange Server 2007 Performance Improvements
Before delving into
ways to tweak Exchange Server 2007 performance, it is important to have
an understanding of the performance improvements that have been made
since its predecessor, Exchange Server 2003. Although some of these
performance improvements are more noticeable than others, Exchange
Server 2007 has been designed to scale into the enterprise and beyond.
Architectural Improvements
One of the largest and
most apparent changes in Exchange 2007 is the move to a 64-bit
architecture. This provides Exchange 2007 with new opportunities for
scalability and performance that were not available with 32-bit code. By
eliminating the legacy limitation of a 3-GB memory space, the Exchange
engine is no longer as limited in how much information it can cache.
This means that Exchange is no longer as limited by disk input/output
(I/O) performance. When configured with sufficient memory, Exchange 2007
can reduce its disk I/O requirements by as much as 75%. This allows
administrators to be much more efficient in their use of disks.
The 64-bit architecture
of Exchange 2007 also allowed Microsoft to raise the limits on the
number of databases that could be hosted by a single Exchange server.
Whereas Exchange 2003 was only capable of a total of 20 databases
(spread out across four storage groups), Exchange 2007 is able to host
as many as 50 databases (spread out across 50 storage groups). This
again offers administrators greater flexibility in how they design their
Exchange 2007 servers, which can result in increased performance if it
is designed correctly.
Database Engine Improvements
Microsoft has continued
to make great strides with the JET database. JET is the database used
by Exchange 2007, as well as in previous versions of Exchange, to store
mailbox data and public folder data. In the new 64-bit version of JET
offered by Exchange 2007, the JET engine is able to take advantage of
the lift in restrictions on memory space and it allows JET to allocate
significantly more cache for the Exchange store. This means that users
have access to more cache and this greatly increases the likelihood that
data requested by a user is already in memory and doesn’t have to be
read from disk. This results in quicker response times for the end
users. Similarly, the database page size in Exchange 2007 has been
increased from 4KB to 8KB. Although this might not seem significant, the
result is that more messages are able to fit into a single database
page and, as a result, the Exchange server needs only one I/O operation
rather than two to retrieve the message. This also helps to significantly reduce the overall I/O requirements of the Exchange 2007 server.
Transport Pipeline Improvements
The transport
pipeline refers to the collection of server roles as well as various
queues, components, and connections within Exchange that work together
to transport messages to the message categorizer in the Hub Transport
server. The job of this categorizer is to deliver mail to the
appropriate location within the Exchange environment. This process has
been greatly improved in Exchange 2007 and is able to handle
significantly more messages than earlier versions of Exchange.
Analyzing Capacity and Performance
Capacity and
performance analysis for an Exchange Server 2007 environment requires a
well-established understanding of the business and messaging needs of
the organization and a well-documented outline of the organization’s
expectations of its messaging environment. The capacity of an Exchange
environment is directly dependent on the expected level of performance.
It is important to understand exactly what it is you are expecting from
the system in terms of storage per user, level of responsiveness of the
server, and room for anticipated expansion. When armed with these
concepts, you can more accurately determine what your current capacity
is.
The first step in
capacity analysis is to grasp an understanding of these concepts and
define performance expectations. This can be done by establishing
policies and service level agreements (SLAs). It is in these policies
and SLAs that an administrator can outline acceptable performance
thresholds and more accurately gauge the capacity needs of Exchange
Server 2007. These thresholds can also be used to accurately establish
performance baselines from which to analyze the requirements against
available resources.
To help develop the
policies and SLAs, use questionnaires, interviews, business objectives,
and the like along with performance measurements via the Performance
Monitor, Exchange Best Practices Analyzer, or third-party analysis
tools. This allows you to combine realistic expectations with concrete
data to see where you are relative to where you want to be.
Establishing Baselines
The
importance of establishing meaningful baselines of the messaging
environment cannot be underscored enough. Baselines are particularly
important in the sense that they are the measurable tools that can be
used to balance what is required of Exchange Server 2007 with what
resources are needed to fulfill those requirements. Achieving this
balance can be made simpler if an administrator consults performance
metrics, such as industry-standard benchmarks. By starting with an
accurate baseline of system performance, you can quickly and easily test
changes in the environment to see if they have made things better or
worse. Accurate baselines are also very helpful when troubleshooting
problems and you can quickly determine which subsystems are not
performing the way they normally
do. A clear baseline allows you to determine whether a server that
“seems slow” really is slower than the way it usually runs.
Note
Use ExchDump to assist
with baselining the environment. ExchDump exports a server’s
configuration, which can be useful to determine whether the build
follows company standards. This is particularly important with Exchange
clusters because each node in the cluster should be a replica of the
other.
To establish an
accurate baseline of Exchange Server 2007, a number of tools can help an
administrator in this process. These tools are discussed in detail in
the following sections. Some of these capacity analysis tools are built
in to Windows Server 2003, and others are built in to Exchange Server
2007. Many third-party tools and utilities are also available for the
careful measurement of Exchange Server 2007 capacity requirements and
performance analysis.
Using the Exchange Best Practices Analyzer Tool
The Exchange
Best Practices Analyzer (ExBPA) is a utility provided by Microsoft that
analyzes an Exchange server’s configuration and informs administrators
on possible configuration changes that can be made to improve
performance or mitigate problems. More specifically, ExBPA can be used
to perform a health check, a health and performance check, a
connectivity test, and a baseline test. This tool, which was a download
in previous versions of Exchange, is now a built-in tool. To access the
Best Practices Analyzer, perform the following steps:
1. | Launch Exchange Management Console.
|
2. | If the left pane, scroll down and select Toolbox.
|
3. | In the action pane, click Open Tool from under the Best Practices Analyzer option.
|
4. | When
the Best Practices Analyzer tool launches, check the Check for Updates
on Startup check box, and click Check for Updates Now.
|
5. | If there are updates available, click Download the Latest Updates.
|
6. | After being updated, the tool closes, and you have to click it again.
|
7. | Choose Go to Welcome Screen.
|
8. | Click Select Options for a New Scan.
|
9. | Type the name of your closest global catalog, and click Connect to the Active Directory Server.
|
10. | Enter a label for this scan, choose the systems you want to scan, choose Health Check, and click Start Scanning.
|
11. | When the tool has finished, click View a Report of This Best Practices Scan to display an output similar to the one shown in Figure 1.
|
When
viewing the report, an administrator is able to see any critical
issues, nondefault settings, or recent changes to the system. This
quickly identifies configuration settings that might be detrimental to
the overall performance of the system. Be sure to always update the Best
Practices Analyzer before running it because Microsoft is constantly
adding new information to this tool.
The
Informational Items tab offers a convenient and consolidated view of
information that is typically captured in Exchange documentation. Take
advantage of this view when tracking the configuration of your Exchange
2007 servers.
Using the LoadSim Tool
Loadsim is a “stress
test” tool written by Microsoft to allow an administrator to simulate
the load of multiple users against an Exchange server. This can be
especially helpful in validating the performance and capacity of a
system by testing it prior to attaching live users to it. LoadSim can be
downloaded from the Microsoft website at http://www.microsoft.com/downloads/details.aspx?familyid=92EB2EDC-3433-47CA-A5F8-0483C7DDEA85&displaylang=en.
To simulate a load against an Exchange server, follow these steps:
1. | Launch the Loadsim application.
|
2. | Click Configuration from the menu bar, and select Topology Properties.
|
3. | In the left pane, expand the server that you plan to test, and select a storage group.
|
4. | In the right pane, double-click the database, and enter the number of users you want to simulate.
|
5. | Repeat this process for each storage group and database.
|
6. | Use the Distribution Lists and Public Folders tabs to simulate the use of these objects as well.
|
7. | When finished with defining the user loads, click OK.
|
8. | Click Configuration in the menu bar, and select Test Properties.
|
9. | Choose the duration for the test to run.
|
10. | In
the bottom pane, click Add to add user groups. These user groups define
the protocols and “user type” of the test users. This allows you to run
multiple profiles of users on the same database. Click OK.
|
11. | From the Test Properties page, click OK.
|
12. | Click
Run in the menu bar, and select Create Topology. This creates the test
user and distribution list objects in Active Directory (AD).
|
13. | Click Run in the menu bar, and select Initialize Test. Click Yes to initialize public folders from this system.
|
14. | Click Run in the menu bar, and select Run Simulation.
|
While the load
simulation is running, you can monitor the performance counters on the
Exchange 2007 server and see how the system is handling the load. This
allows you to validate your design in terms of how the server is
configured versus the anticipated user load.
Don’t forget to delete the user and distribution list objects from Active Directory when you are finished with your testing.
Planning for Growth
One of the easiest ways to
maintain the performance of an Exchange 2007 server is to plan ahead
for the growth of the environment. Too many administrators have a
tendency to build an Exchange infrastructure that meets the storage and
performance requirements of today but that fails to account for the
growth of the company.
Typically, when
designing an Exchange 2007 infrastructure, you should try to look ahead
roughly 3 years to predict the size to which the company will grow. This
is a good time to talk to groups such as Human Resources and Finance to
see the rate at which the company has grown historically. This will
give you a good idea of how many employees would be utilizing the
Exchange environment in 3 years. This process should also uncover
specific expansion plans for the company. For example, if the company
were going to grow from 10,000 employees to 13,000 employees in 3 years,
you would naturally consider that a 30% growth and would allow for an
extra 30% capacity on servers. However, if the case were that 2,000 of
those employees would be in a new facility in Japan
that was going to be online in 2 years, it would really be a 10% growth
across the enterprise and potentially a very large increase in capacity
needs in Asia or perhaps an entirely new Exchange site in Japan.
Understanding these
types of growth allow you to more easily plan for capacity growth and
understand how the increase in user load will affect the performance of
your Exchange 2007 servers in various sites.
The other thing to
consider when planning for growth is the increases in usage of the
Exchange environment. It is common to see companies increase the storage
limits for users without changing the number of users on a server.
There are also third-party technologies that might be in your 3-year
plan that will leverage Exchange 2007 as a storage or transport. Voice
mail system, Structured Query Language (SQL), or Oracle implementations
could quickly increase the loads placed on your Exchange 2007 servers.
The reason it is
important to predict, as best you can, these anticipated growths is
because it is often easier to account for these needs at the time of the
Exchange 2007 design. Most companies are using storage area networks
(SANs) or network attached storage (NAS) for the mailbox stores in
Exchange. Although these systems do have the ability to resize their
LUNs to offer additional storage, this is a very time-consuming process
and it directly impacts the users on the server. Similarly, because
these are usually shared storage devices, there is likely not enough
spare capacity on the shelf or device to allocate more space to the
Exchange servers. This results in the SAN or NAS administrator having to
allocate additional space in a nonoptimal way, which can affect the
performance of all the applications that attach to the NAS or SAN.